ERROR MESSAGES


	McAsm will output an English error message in the 
listing on the line immediately following the line containing an 
error. In addition, at the end of the assembly the number of 
errors in the file is output along with a listing of every line 
number containing an error. 


	Since memory is required to store the list of line 
numbers containing errors, if available memory is used up when 
an error occurs, then McAsm will not add any more errors to its 
error line list. This means that the error line list may 
sometimes be incomplete, but this will rarely happen without 
also running out of symbol table space (which will abort the 
assembly). A warning message will appear at the end of the 
listing if the error line list may be incomplete.


SYMBOL TABLE


	McAsm will output a symbol table at the end of the 
listing if that option has been selected in the option menu. 
Symbol names in the table will be truncated to the first eight 
characters of the names.


CROSS REFERENCE TABLE


	McAsm will output a cross reference table at the 
end of the listing if that option has been selected in the option 
menu. This will include all symbols except local labels. Symbol 
names in the cross reference list will be truncated to the first 
eight characters of the names. 


	To do this, McAsm builds a cross reference list 
during the assembly. This list takes memory. If available 
memory is completely used up, then rather than aborting the 
assembly, McAsm will just stop adding references to the cross 
reference list. This means that occasionally all references will 
not appear in the list. This should rarely happen, and, again, you 
will probably also run out of symbol table space too, which will 
abort the assembly. If McAsm does stop cross referencing 
because of a memory full condition, a warning message will 
appear at the end of the listing.


LOWERCASE


	You can enter labels, opcodes, operands, operators, 
and hexadecimal numbers in lowercase. Lowercase labels are 
not distinct from their uppercase counterparts unless you use 
the CASE pseudo-op.


MCLINK


	McLink is a 68000 linker specifically designed to 
run on and produce relocatable files for the Macintosh. McLink 
will link together .REL files produced by McAsm and store the 
result in a resource file as an executable file.


	When McLink is run, it opens an output window on 
the screen. This is the window in which all messages, maps, 
etc. will displayed. The output window's contents will scroll up 
out of the window as data is displayed in the window. Data 
which is scrolled off is lost.


FILE MENU


	The File Menu gives you two options - Link or Quit. If 
you select Link, then the standard Open File dialog box will 
appear. Select the file you want to link and "Open" it in any of 
the normal ways. Mclink will then start linking the file.


	The file you specify to link is actually a 
specification file which contains the names of the files to be 
linked and the name of the resulting output file. The 
specification file has the following format (each filename is on 
a separate line):


	input filename 1

	input filename 2

	...

	input filename n

	/output filename


The input files should be .REL files. If an input filename doesn't 
end in .REL, McLink will add .REL to it before it tries to open the 
file. The output filename must be the last filename in the list 
and it has to be preceded by a slash character.



OPTION MENU


	The Option Menu gives you the following options:


	* Printer output - causes all pertinent output 
information to be

		sent to the printer.

	* Symbol table - cause a table of all externally 
defined

		symbols and their values to be output after 
the link map

		is output.


THE LINK PROCESS


	McLink makes two passes on every input file. The 
first pass is just to build the symbol table and only requires 
the reading of header information in the front of each input file. 
The second pass actually reads all of the code and resources in 
the input files, builds and links the object code, and writes out 
the result to a resource file.


	During the link process, the status of the link and 
the name of the file currently being processed will be displayed 
in the output window. At the end of the link, a link map will be 
displayed showing information describing each module that has 
been linked. An optional symbol table of externally defined 
symbols may also be displayed.


THE LINK ORDER


	There are only two aspects of ordering that must be 
strictly followed: 1.) The first item in the first file that's 
linked must be the starting instruction of the program, and 2.) 
all resources must be linked after all code and/or data. If you 
attempt to link code after a resource has been linked you'll get 
an error message. (The error message may be rather oblique - 
CAN'T OPEN RESOURCE FILE, for example. McLink tries (honest) 
to give you a more specific error message, but it sometimes 
gets confused.)


FILE COMPATIBILITY


	McAsm .REL files are not compatible with any other 
assembler's .REL files. Don't try to link McAsm .REL files with 
any other linker. Conversely, McLink can only handle McAsm .REL 
files. Don't try to link any other .REL files with McLink. (There 
is an identifier sequence of bytes in the header of McAsm .REL 
files that McLink uses to determine if it's a valid .REL file or 
not - if it isn't, you'll get an error message.)


SEGMENTS


	Sorry, but multiple code segments are not supported 
in Versions 1.0 of McAsm and McLink. Versions 1.nS of each, 
available on special order, do support segmenting.



MISC. STUFF


FUTURE VERSIONS DISTRIBUTION POLICY


	The present iterations of McAsm and McLink are 
Versions 1.0. The next iteration will be Versions 1.nS which 
will have support for multiple program segments along with 
any bug fixes found in Version 1.0. After Version 1.nS comes 
Version 2.0, which is planned to have at least the following 
features:


	* a more sophisticated user interface, including an 
"exec job 		file" capability.

	* The ability to use McLink symbol tables 
mnemonically in 		McBug.

	* The ability to "include" existing resource files in 
the 		resource assembly section of McAsm.

	* And other planned enhancements.


	The distribution policy for each of these versions is 
as follows:


	Versions 1.0 will always be available as shareware 
and will be fully supported as such as long as the 
registration response is there. There will, I'm sure, be 
future versions of these to fix bugs and omissions found as the 
programs get into wider distribution. These future versions 
will always have a version number of 1.n to differentiate them 
from the the other versions.


	Versions 1.nS, the segmenting support versions, will 
not be posted on BBS's as shareware. They are be available to 
anyone who registers on a special order basis.


	Versions 2.0 will also not be available as shareware 
and will have to be ordered directly from me on special order.



	There are several reasons for this approach, but, to 
be honest, the most important is probably that it gives me some 
level of protection. If the shareware approach doesn't work out, 
then I'll still have a differentiated product that I could publish 
commercially. Notice that I said "if". If it turns out that the 
sharware registration rate reaches some reasonable level, then 
I would be more than willing to change this policy. So it's up to 
you guys -  if you like it and you want more, then register. But 
until I'm convinced otherwise, the brunt of the enhancement 
effort is going to go into Versions 1.nS and 2.0. which will only 
be available on special order by those who register. Future 
versions of 1.n will only amount to bug fixes and the rectifying 
of obviously needed omissions.


	I guess you could say that Version 1.0 represents a 
"crippled" version which is just being used to promote the 
enhanced versions. My initial response to that is "What's so bad 
about that?" I myself, however, don't feel they're "promotional 
cripples" for two reasons: 1.) They are very useful products 
(they're used to assemble and link themselves, for example), 
and 2.) Version 2.0 isn't ready yet, so at the moment, I'm not 
actually holding anything back. By the time 2.0 is ready, I'll 
have had a chance to gauge the registration rate and perhaps 
change the policy at that time. In the meantime, I tend to look 
at it as being able to provide you with a shareware opportunity 
without having to "give away the store". At the same time, I'm 
supplying you with a product that I truly believe is worthwhile.


CONTACT INFORMATION


	Please make your checks or money orders payable to 
me and send them to:


	David M. McWherter, Jr.

	McStuff Department

	2151 Brown Ave.

	Bensalem, PA 19020

 

	Registered users may contact me for support 
(questions, criticisms, bug reports, help, etc.) by phone at 215-
639-8764 or by CompuServe EasyPlex to ID 70057,1612.




PAYMENT REQUEST


	There are currently three different payment levels 
for McAsm and McLink, depending on how happy you are with the 
program:


	1.) Nothing - you're not happy with the programs and 
you could care less about future versions. You've already spent 
the time and money for a download, and you're probably upset 
about that. (Obviously, I hope this isn't the case, but to each his 
own - that's what Shareware's all about.)


	2.) $40.00 - you like the programs and you don't need 
or want anything more from me. OK, so enjoy, but I'd appreciate 
it if you'd take the time and spend the money (and compensate 
me for both of mine) by registering - I really think it's worth 
$40.00.


	3.) $50.00 - you also like the programs, but you need 
segmenting capability, so you'd like me to send you the 
following:


	The McStuff V1.n Diskette, with:


		a.) The latest versions of McAsm and McLink 
Versions 			1.nS, with segmenting capability,

		b.) The latest version of McBug (in it's three 	
		configurations - bootable, clickable, and 
both),

		c.) A collection of support files for McAsm 
containing all

			of the standard O/S and Toolbox trap 
definitions

			and system equate and variable names.

		d.) The sample file LIST.ASM.


	There will be Real Soon Now a fourth payment level 
which will get you the McStuff V2.n Diskette. This will have 
everything included on the V1.n diskette, except it will be 
McAsm and McLink versions 2.0. Version 2.0 will as a minimum 
support segmenting, allow symbol table files to be used by 
McBug, and have a more sophisticated user interface with "exec 
job file" support. SInce I hate to offer anything for sale that 
isn't ready yet, you can't order this right now. Registered users 
of V1.n will be given the opportunity to update to V2.n if they 
need it as soon as it's available for a reasonable charge. 




McAsm & McLink Registration/Order 
Form


Your name:	                                                                      



Your address:	                                                                      



Your city,state:	                                                                      



The versions that you have:	         



What BBS did you get it from? 



Order selection: (Please check one.)


	      	I just want to make a payment for keeping 
McAsm

		and McLink. (Suggested payment $40.00)


	      	I want to pay for McAsm and McLink and also 
order the 		McStuff V1.n diskette. (Required payment 	
	$50.00) (Available 8/15/85; McLink V1.nS requires 
512K)


		I also would like to be notified when V2.0 is 
available

		because I need the extra features and I'm 
willing to pay

		a reasonable update fee to get them.


Make checks or money orders payable to David M. McWherter, Jr., 
and send them to:


	David M. McWherter Jr.

	McStuff Department

	2151 Brown Ave.

	Bensalem, PA 19020


Please enter any comments, criticisms, suggestions, or 
questions here:


                                                                                                    
          

                                                                                                    
          

                                                                                                    
          

                                                                                                    
          

 
